package com.jprocms.module.cms.service.sitetpl;

import java.time.LocalDateTime;
import java.util.List;

/**
 * 系统资源文件接口
 *
 * @author: zrcms
 */
public interface IResFile {
    /**
     * 获得模板完整名称 包含路径
     *
     * @return
     */
    String getName();

    /**
     * 获得路径，不包含文件名的路径。
     *
     * @return
     */
    String getRoot();

    /**
     * 获得名称，不包含路径的文件名。
     *
     * @return
     */
    String getFilename();

    /**
     * 获得模板内容
     *
     * @return
     */
    String getSource();

    /**
     * 获得最后修改时间（毫秒）
     *
     * @return
     */
    long getLastModified();

    /**
     * 获得最后修改时间（日期）
     *
     * @return
     */
    LocalDateTime getLastModifiedDate();

    /**
     * 获得文件大小，单位bytes
     *
     * @return
     */
    long getLength();

    /**
     * 获得文件大小，单位K bytes
     *
     * @return
     */
    int getSize();

    /**
     * 转换文件大小
     *
     * @return
     */
    String getSizeUnit();

    /**
     * 是否目录
     *
     * @return
     */
    boolean isDirectory();

    List<IResFile> getChildren();

    List<IResFile> getAllChildren();

    void setChildren(List<IResFile> resFiles);

    Integer getParentId();

    Integer getId();

    /**
     * 返回文件名为了 前端修改方便返回的就是filename属性
     *
     * @return
     */
    String getOriginFileName();

    Boolean getIncludePage();
}
